package com.itheima.method;

import java.util.Scanner;

/*
    某幼儿园小班开学共入学5名小朋友，现在班主任老师要对各位小朋友的年龄进行登记，并计算出本班学生的平均年
龄。（注意：班级平均年龄 = 班级学员年龄总和 / 班级人数）
请编写程序模拟以上场景，要求定义两个方法分别完成小朋友年龄登记和小朋友年龄求和，并在主方法中完成方法的
调用，并根据公式计算出班级平均年龄，将结果输出打印到控制台。
注意：幼儿园小朋友的年龄应该是在[3，5]岁范围内，如果班主任不小心登记错了，要提醒重新登记。
 */
public class PromoteTest1 {
    /*
    1、在main方法中定义一个int[] arr，动态初始化长度为5，用来记录5个小朋友的年龄

2、定义年龄登记方法，参数接受一个int数组，返回值类型为void

3、定义年龄求和方法，参数接受一个int数组，返回值类型为int

4、在main方法中调用年龄登记方法，将arr传递过去

5、在main方法中调用年龄求和方法，将arr传递过去，并接受返回的年龄总和

6、根据公式计算出平均年龄：班级平均年龄 = 班级学员年龄总和 / 班级人数

7、输出平均年龄
     */
    public static void main(String[] args) {
        //1.定义数组,利用动态初始化完成数据的初始化,用于存储小朋友的年龄
        int[] arr = new int[5];
        //4.调用年龄登记方法
        age(arr);
        //5.调用年龄求和方法
        int sum = getSum(arr);
        //根据公式计算平均年龄
        double avg = (sum * 1.0) / arr.length;
        //输出平均年龄
        System.out.println("小朋友的平均年龄为:" + avg);

    }
    //2.定义方法用于接受int数组完成小朋友的年龄登记,返回值为void
    public static void age(int[] arr){
        //定义小朋友年龄使用键盘录入
        Scanner sc = new Scanner(System.in);
        //遍历数组,给每个索引位置赋值,代表小朋友的年龄
        for (int i = 0; i < arr.length; i++) {
            //给出引导性提示的输出语句
            System.out.println("请输入第" + (i+ 1) + "个小朋友的年龄");
            //定义变量用于接受键盘录入的小朋友的年龄数,判断是否有误,赋值给数组各索引位置
            int age = sc.nextInt();
            if(age > 5 || age < 3){
                System.out.println("您的输入有误,请重新输入[0,5]之间整数");
                i--;
            }else{
                arr[i] = age;
            }
        }
    }
    //3.定义年龄求和方法
    public static int getSum(int[] arr){
        //定义求和变量,初始值为0
        int sum = 0;
        //遍历数组求和
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }
}





